<?php
class UsersController extends AppController {

	var $name = 'Users';

	function login($ua = null){
		$this->pageTitle = W2D . ELV . LOGIN;
		$this->set('error', false);
		if(!empty($this->data)){	//küldött el bejelenetkezési adatokat
			$this->set('user', $this->User->findAll());
			$someone = $this->User->findByNev($this->data['User']['nev']);
			if(!empty($someone['User']['jelszo']) && $someone['User']['jelszo'] == md5($this->data['User']['passw'])){
				$this->Session->write('User', $someone['User']);
				//ha nincs bejelölve
				if(!$this->data['User']['emlek']){
					setcookie("w2dBe", 0, time()-60*60);
					}
				//ha bejelölte, hogy emlékezzünk rá vagy van már cookieja akkor tegyük ezt
				else{
					//hozzunk létre egy hónap múlva lejáró cookiet vagy a meglévőt frissítsük
					setcookie("w2dBe", md5($someone['User']['nev'].$someone['User']['jelszo']), time()+60*60*24*30, '/');
					}
				unset($someone['User']['jelszo']);
				$this->redirect('/');
	         }
			else{
				$this->set('error', true);
				//todo: loggoljuk a hibás belépési kísérletet
				}
	      }
		else{	//még nem küldött el bejelentkezési adatokat
			//ha van cookie automatikusan beléptetjük
			if($_COOKIE['w2dBe'] && !isset($_SESSION['kilepve'])){
				$user = $this->User->find('MD5(CONCAT(nev,jelszo)) = "' . $_COOKIE['w2dBe'] . '"', 'nev');
				if($user['User']['nev']){	//találtunk egyezést
					$this->Session->write('User', $user['User']['nev']);
					$this->redirect('/');
					}
				else	//nincs egyezés be kel lépnie
					$this->set('error', true);
					//todo: loggoljuk a hibás belépési kísérletet
				}
			//todo: és frissítjük a cookiet, vagy havonta megerősítést kérünk?
			}
		}

	function logout(){
		$this->Session->delete('User');
		$this->Session->write('kilepve', true);	//ha kézzel kilép akkor akasszuk meg a session idejére az automatikus beléptetést
		$this->redirect('/users/login');
	   }

	function change($id = 1){
		//felhasználói adatok módosítása
		$sikeres = false;
		$this->set('w2dver', $this->getVersions());
		$this->pageTitle = W2D . ELV . INFO;
		if(empty($this->data)){
			$this->data = $this->User->read('id, nev', $id);
		}
		else{
			$this->cleanUpFields();
			//ha a jleszavak egyeznek akkor menthető
			if($this->data['User']['jelszo1'] == $this->data['User']['jelszo2']){
				$this->data['User']['jelszo'] = md5($this->data['User']['jelszo2']);
				$this->User->save($this->data);
				$this->set('message', USER_UPDATED);
				$this->data['User']['jelszo1'] = $this->data['User']['jelszo2'] = null;
				$sikeres = true;
				}
			else
				$this->set('message', USER_PASSWORD_ERROR);
			}
		$this->set('sikeres', $sikeres);
		}

}
?>